package com.wang.users.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.wang.common.util.PageInfoUtil;
import com.wang.users.pojo.AAdmins;
import com.wang.users.pojo.ALog;
import com.wang.users.pojo.ARole;
import com.wang.users.pojo.AStatRes;

/**
 * 用户模块Service接口(带Db的只负责数据库表的crud)
 * 
 * @author Zjx
 */
public interface IUsersDbService
{
	/* ====角色操作开始==== */
	/**
	 * 保存一条角色
	 * 
	 * @param role 角色
	 * @return 返回json fastjson处理的时候超级简单; 凡是看到{}就是jsonObject;===Map使用
	 *         凡是看到[]就是jsonarray;===List使用 凡是看到:就是键和值;:左边是键,右边是值 { // 响应码 "code":"",
	 *         //响应信息 "info":"", // 数据 "data": { "id":"", // 影响条数 "effect":"1" } }
	 */
	JSONObject saveOneRoleService(ARole role);

	/**
	 * 更新一条角色
	 * 
	 * @param role
	 * @return { // 响应码 "code":"", //响应信息 "info":"", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject updateOneRoleService(ARole role);

	/**
	 * 删除一条角色
	 * 
	 * @param role
	 * @return { // 响应码 "code":"", //响应信息 "info":"", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject deleteOneRoleService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	ARole findOneRoleService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	List<ARole> findCondListRoleService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/* ====角色操作结束==== */

	/* ====管理员操作开始==== */
	/**
	 * 保存一条管理员
	 * 
	 * @param admins 管理员
	 * @return 返回json fastjson处理的时候超级简单; 凡是看到{}就是jsonObject;===Map使用
	 *         凡是看到[]就是jsonarray;===List使用 凡是看到:就是键和值;:左边是键,右边是值 { // 响应码 "code":"",
	 *         //响应信息 "info":"", // 数据 "data": { "id":"", // 影响条数 "effect":"1" } }
	 */
	JSONObject saveOneAdminsService(AAdmins admins);

	/**
	 * 更新一条管理员
	 * 
	 * @param admins
	 * @return { // 响应码 "code":"0", //响应信息 "info":"成功", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject updateOneAdminsService(AAdmins admins);

	/**
	 * 更新一条管理员,上传图片
	 * 
	 * @param admins
	 * @param fileMap
	 * @return
	 */
	JSONObject updateOneAdminsService(AAdmins admins, Map<String, Object> fileMap);

	/**
	 * 删除一条管理员
	 * 
	 * @param admins
	 * @return { // 响应码 "code":"", //响应信息 "info":"", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject deleteOneAdminsService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	AAdmins findOneAdminsService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	List<AAdmins> findCondListAdminsService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/* ====管理员操作结束==== */

	/* ====日志操作开始==== */
	/**
	 * 保存一条日志
	 * 
	 * @param log 日志
	 * @return 返回json fastjson处理的时候超级简单; 凡是看到{}就是jsonObject;===Map使用
	 *         凡是看到[]就是jsonarray;===List使用 凡是看到:就是键和值;:左边是键,右边是值 { // 响应码 "code":"",
	 *         //响应信息 "info":"", // 数据 "data": { "id":"", // 影响条数 "effect":"1" } }
	 */
	JSONObject saveOneLogService(ALog log);

	/**
	 * 更新一条日志
	 * 
	 * @param log
	 * @return { // 响应码 "code":"0", //响应信息 "info":"成功", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject updateOneLogService(ALog log);

	/**
	 * 删除一条日志
	 * 
	 * @param log
	 * @return { // 响应码 "code":"", //响应信息 "info":"", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject deleteOneLogService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	ALog findOneLogService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	List<ALog> findCondListLogService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

	/**
	 * 统计log
	 * 
	 * @param condMap
	 * @return
	 */
	List<Map<String, Object>> statLogListService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/* ====日志操作结束==== */

	/* ====统计结果操作开始==== */
	/**
	 * 保存一条统计结果
	 * 
	 * @param statRes 统计结果
	 * @return 返回json fastjson处理的时候超级简单; 凡是看到{}就是jsonObject;===Map使用
	 *         凡是看到[]就是jsonarray;===List使用 凡是看到:就是键和值;:左边是键,右边是值 { // 响应码 "code":"",
	 *         //响应信息 "info":"", // 数据 "data": { "id":"", // 影响条数 "effect":"1" } }
	 */
	JSONObject saveOneStatResService(AStatRes statRes);

	/**
	 * 更新一条统计结果
	 * 
	 * @param statRes
	 * @return { // 响应码 "code":"0", //响应信息 "info":"成功", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject updateOneStatResService(AStatRes statRes);

	/**
	 * 删除一条统计结果
	 * 
	 * @param statRes
	 * @return { // 响应码 "code":"", //响应信息 "info":"", // 数据 "data": { "id":"", //
	 *         影响条数 "effect":"1" } }
	 */
	JSONObject deleteOneStatResService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	AStatRes findOneStatResService(Map<String, Object> condMap);

	/**
	 * 查询一条记录
	 * 
	 * @param condMap
	 * @return
	 */
	List<AStatRes> findCondListStatResService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/* ====统计结果操作结束==== */
}
